//#include<iostream>
//using namespace std;
//class Person
//{
//public:
//	Person()
//	{
//		cout << "调用无参(默认)构造函数" << endl;
//	}
//	Person(int a)
//	{
//		age = a;
//		cout << "调用有参构造函数" << endl;
//	}
//	//拷贝构造函数用于拷贝传入到类的自身类上
//	//除了拷贝构造函数外都是普通构造函数
//	Person(const Person& p)
//	{
//		age = p.age;
//		cout << "调用拷贝构造函数" << endl;
//	}
//	~Person()
//	{
//		cout << "析构函数的调用" << endl;
//	}
//	int age;
//};
//void test()
//{
//	//调用
//	//1.括号法
//	//注意：调用无参构造函数时不要输入()
//	//Person p();会被编译器误认为是函数的声明
//	Person p;//调用无参构造函数
//	Person p1(10);//调用有参构造函数
//	Person p2(p1);//调用拷贝构造函数
//	cout << "p1的年龄" << p1.age << endl;
//	cout << "p1的年龄" << p2.age << endl;
//
//	//2.显示法
//	Person p3;//调用无参构造函数
//	Person p4 = Person(10);//调用有参构造函数
//	Person p5 = Person(p1);//调用拷贝构造函数
//	//Person(10)为匿名对象 等号左侧就是它的名
//	//特点：当前行结束时，系统会立即回收掉匿名对象 即它的析构函数会在该行结束后就调用而不是test函数结束
//
//	//3.隐式转换法
//	Person p6 = 10;//调用有参构造函数 相当于Person p6=Person(10);假如有两个参数就是Person p6=(10,9)；
//	Person p7 = p1;//调用拷贝构造函数 相当于Person p7=Person(p1);
//
//}
//int main()
//{
//	test();
//	system("pause");
//	return 0;
//}


//无参(默认)构造函数
#include<iostream>
using namespace std;
class Person
{
public:
	//默认构造函数
	Person();
	int m_Age;
	int* m_Height;
};
//初始化年龄和身高
Person::Person()
{
	cout << "默认构造函数的调用!" << endl;
	this->m_Age = 21;
	this->m_Height = new int(175);
}
int main()
{
	Person p;
	cout << "此人年龄是：" << p.m_Age << endl;
	cout << "此人身高是：" << *(p.m_Height) << endl;
	return 0;
}